package cn.fws.meap.user.service.impl;

import java.util.List;

import cn.fws.meap.community.vo.ArticleListVo;
import cn.fws.meap.community.vo.ProblemListVo;
import cn.fws.meap.utils.QiNiuUtil;
import cn.fws.meap.utils.logBug.SysLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.fws.framework.utils.ConvertUtils;
import cn.fws.framework.utils.UUIDUtils;
import cn.fws.meap.user.mapper.CollectMapper;
import cn.fws.meap.user.entity.Collect;
import cn.fws.meap.user.service.ICollectService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 收藏记录 服务层实现
 *
 * @author chenkh
 * @date 2019-03-07
 */
@Service
@Transactional
public class CollectServiceImpl implements ICollectService {

    @Autowired
    private CollectMapper collectMapper;

    /**
     * 查询收藏记录信息
     *
     * @param id 收藏记录ID
     * @return 收藏记录信息
     */
    @Override
    public Collect selectById(String id) {
        return collectMapper.selectById(id);
    }

    /**
     * 查询收藏记录列表
     *
     * @param openid 收藏记录信息
     * @return 收藏记录集合
     */
    @SysLog
    @Override
    public List<ArticleListVo> selectArticleList(String openid, String articleType)	{
        List<ArticleListVo> collectDetaileVos = collectMapper.selectArticleList(openid,articleType);
        System.out.println("收藏文章-----------"+collectDetaileVos);
        for (ArticleListVo collectDetaileVo : collectDetaileVos) {
            String fileMsg = QiNiuUtil.getFileMsg(collectDetaileVo.getArticleMsg());
            collectDetaileVo.setArticleMsg(fileMsg);
        }

        return collectDetaileVos;
    }

    /**
     * 查询收藏的问题列表
     * @param openid
     * @return
     */
    @SysLog
    @Override
    public List<ProblemListVo> getProblemList(String openid,String problemType) {

        List<ProblemListVo> collectDetaileV = collectMapper.selectProblemList(openid,problemType);
        for (ProblemListVo collectDetaileVo : collectDetaileV) {
            String fileMsg = QiNiuUtil.getFileMsg(collectDetaileVo.getProblemMsg());
            collectDetaileVo.setProblemMsg(fileMsg);
        }
        System.out.println("收藏问题-----------"+collectDetaileV);
        return collectDetaileV;
    }

    /**
     * 新增收藏记录
     *
     * @param collect 收藏记录信息
     * @return 结果
     */
    @Override
    public int insert(Collect collect) {
        // 设置主键
        collect.setId(UUIDUtils.getUUID());
        // 设置创建时间
        collect.setCreateTime(new java.util.Date());

        return collectMapper.insert(collect);
    }

    /**
     * 修改收藏记录
     *
     * @param collect 收藏记录信息
     * @return 结果
     */
    @Override
    public int update(Collect collect) {
        // 设置修改时间
        collect.setUpdateTime(new java.util.Date());
        return collectMapper.update(collect);
    }

    /**
     * 删除收藏记录对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteByIds(String ids) {
        return collectMapper.deleteByIds(ConvertUtils.toStrArray(ids));
    }

    /**
     * 根据文章的id和用户的id判断当前的文章有没有被收藏
     * @param articleId
     * @param openid
     * @return
     */
    @Override
    public Collect selectByarticleIdAndOpenId(String articleId, String openid) {

        return collectMapper.selectByarticleIdAndOpenId(articleId,openid);
    }

    @Override
    public int deleteById(String id) {

        return collectMapper.deleteById(id);
    }


}
